Krishti Bikal
09/10/2026, 12:30 PMkapa.ai
09/10/2026, 12:30 PMInsightView component.
Prerequisites Before rendering the component, ensure you have:
1. Installed the necessary dependencies (such as @gooddata/sdk-ui-ext).
2. Set up the AnalyticalBackend and WorkspaceProvider (or passed backend and workspace props) in your application.
3. Handled Cross-Origin Resource Sharing (CORS) [Embed Visualizations Using React SDK].
Code Snippet You can reference a saved visualization directly by its ID:
import React from "react";
import "@gooddata/sdk-ui-ext/styles/css/main.css";
import { InsightView } from "@gooddata/sdk-ui-ext";
const insight = "<visualization_id>";
const showTitle = "Demo Column Chart";
const style = { height: 300 };
export function MyComponent() {
return (
<div style={style}>
<InsightView
insight={insight}
showTitle={showTitle}
/>
</div>
);
}
[React SDK; Slack forum user question]
How to Get the Code Directly from the UI You can also copy a pre-generated snippet directly from GoodData:
1. Open the saved visualization in GoodData.
2. Click the </> (Embed) button in the top-right corner and select Embed visualization [Embed Visualizations Using React SDK].
3. Select the React tab, configure your options (referential or programmatic, title display, and height), and click Copy code [Embed Visualizations Using React SDK]. π 0 button π 0 button βΉοΈ Tip: Mention @kapa.ai in the thread for follow-ups.
π Our Support team monitors all messages and will jump in if needed.Shamil Akhmadyshev
09/10/2026, 12:43 PMkapa.ai
09/10/2026, 12:43 PMInsightView component or need assistance with setting up authentication, the analytical backend, or configuring visualizations, please feel free to share your questions or error details in this thread. π 0 button π 0 button βΉοΈ Tip: Mention @kapa.ai in the thread for follow-ups.
π Our Support team monitors all messages and will jump in if needed.Krishti Bikal
09/10/2026, 4:05 PMkapa.ai
09/10/2026, 4:05 PMVIEW permission on the workspace containing the visualization [Slack forum user question].
β’ Row-level data restrictions (User Data Filters): If users in the group should only see specific data within the visualization, configure User Data Filters (UDFs) for that user group [Building Real-time, Multi-Tenant Analytics: 10 Questions and Answers; Slack forum user question].
β’ Front-end / Application-level control: If you need to restrict the visibility of the visual itself to a specific group, control whether the component (such as InsightView) is rendered in your front-end application based on the user's role or group in your app.
2. Embedded Dashboards If your embedded visual is part of an embedded dashboard, dashboards support explicit object-level sharing.
Via the User Interface: 1. Open the dashboard in the GoodData UI and click Share in the top right [Share a Dashboard].
2. Click + Add and select the target User Group [Share a Dashboard].
3. Choose the permission level (e.g., Can view, Can view and share, or Can edit and share) [Share a Dashboard].
4. Click Share to confirm [Share a Dashboard].
_(Note: The user group must first have at least VIEW access assigned to the workspace to appear in the share dialog and access the dashboard [Share Dashboards; Community Slack].)_
Programmatically (Python SDK): To manage dashboard permissions for a group using the Python SDK:
from gooddata_sdk import (
GoodDataSdk,
CatalogAssigneeIdentifier,
CatalogPermissionsForAssigneeIdentifier,
)
sdk = GoodDataSdk.create("GOODDATA_HOST", "GOODDATA_TOKEN")
sdk.catalog_permission.manage_dashboard_permissions(
workspace_id="<workspace_id>",
dashboard_id="<dashboard_id>",
permissions_for_assignee=[
CatalogPermissionsForAssigneeIdentifier(
assignee_identifier=CatalogAssigneeIdentifier(
id="<group_id>", type="userGroup"
),
permissions=["VIEW"], # Options: VIEW, SHARE, EDIT
)
],
)
[Automate User Provisioning and Assign Content] π 0 button π 0 button βΉοΈ Tip: Mention @kapa.ai in the thread for follow-ups.
π Our Support team monitors all messages and will jump in if needed.Krishti Bikal
09/10/2026, 5:08 PMkapa.ai
09/10/2026, 5:08 PMVIEW permission on a workspace can view the insights in that workspace [Supported Permissions; Slack forum user question].
β’ There is no native mechanism within GoodData to permit a user group to view one specific visualization while hiding others within the same workspace [Slack forum user question].
Alternative Approaches If you need to restrict access:
1. Embed on a Dashboard: Add the visualization to a dashboard and manage access at the dashboard level, where sharing and view permissions can be assigned to specific user groups [User and User Group SEE Permission; Slack forum user question].
2. Workspace Separation: Place visualizations meant for different groups into separate workspaces and assign group permissions at the workspace level [Slack forum user question].
3. Application-Level Logic: If you are embedding via the React SDK (e.g., using InsightView), control the rendering logic in your host web application so that the component is only displayed if the logged-in user belongs to the allowed group [React].
4. User Data Filters (UDF): If the goal is to restrict the data returned inside the visualization for that group rather than hiding the visual itself, apply User Data Filters to the group [Slack forum user question]. π 0 button π 0 button βΉοΈ Tip: Mention @kapa.ai in the thread for follow-ups.
π Our Support team monitors all messages and will jump in if needed.Krishti Bikal
09/11/2026, 7:56 AMkapa.ai
09/11/2026, 7:56 AMVIEW access at the workspace level can load and view visualizations [Slack forum user question].
β’ Not having access to the Analyze tab simply means the user lacks the ANALYZE permission (which allows creating and editing visualizations in Analytical Designer). However, embedding an existing visualization (for example, using the React SDK's InsightView component) only requires read/view access to execute and display the insight [Slack forum user question].
2. Filtering Based on UDF (User Data Filters) β’ Yes, the embedded visualization will automatically apply and filter based on the user's UDF.
β’ User Data Filters apply row-level security at the Logical Data Model (LDM) level across the entire workspace [Slack forum user question].
β’ Whenever an insight or dashboard queries data on behalf of that user, the assigned UDF is evaluated and restricts the data returned [Slack forum user question; Slack forum user question]. π 0 button π 0 button βΉοΈ Tip: Mention @kapa.ai in the thread for follow-ups.
π Our Support team monitors all messages and will jump in if needed.Krishti Bikal
09/15/2026, 11:14 PMkapa.ai
09/15/2026, 11:14 PM.../analyze/embedded/#/... or the main platform Analyze tab) [Slack forum user question; Slack forum user question].
β’ When opening a standalone URL link to a visualization, GoodData routes the request through Analytical Designer.
β’ If a user only has VIEW access and does not have the ANALYZE permission, they cannot access the Analyze tool, and opening the direct URL fails.
β’ GoodData only provides standalone URL/iframe embedding endpoints for Dashboards and Analytical Designer (/analyze/...)βthere is no dedicated standalone view-only URL for individual visualizations [Embed Visualizations Using Iframes; Slack forum user question].
Recommended Workarounds If you cannot grant ANALYZE permissions and must avoid exposing the Analyze interface:
1. Embed via the React SDK (InsightView)
Instead of using an iframe or direct URL link, embed the visualization inside your web application using the GoodData.UI React SDK:import "@gooddata/sdk-ui-ext/styles/css/main.css";
import { InsightView } from "@gooddata/sdk-ui-ext";
export function MyVisualization() {
return (
div style={{ height: 400 }}
<InsightView insight="visualization_id" />
/div
);
}Because InsightView only executes and renders the visualization component without loading the Analytical Designer UI, it renders cleanly in your web application [Slack forum user question].
2. Embed a Single-Visualization Dashboard via Iframe
If your web application relies strictly on URL/iframe embedding:
β¦ Create a minimal dashboard containing only that single visualization.
β¦ Grant the user or user group VIEW permission to that specific dashboard [Automate User Provisioning and Assign Content].
β¦ Embed the dashboard via iframe using URL parameters such as ?hideControl=[topBar,filterBar] to hide navigation, toolbars, and dashboard controls so that only the chart itself is visible [Slack forum user question]. π 0 button π 0 button βΉοΈ Tip: Mention @kapa.ai in the thread for follow-ups.
π Our Support team monitors all messages and will jump in if needed.Krishti Bikal
09/15/2026, 11:16 PMkapa.ai
09/15/2026, 11:16 PMInsightView component from the @gooddata/sdk-ui-ext package [InsightView].
Basic Code Snippet You can reference the visualization directly using its identifier:
import React from "react";
import "@gooddata/sdk-ui-ext/styles/css/main.css";
import { InsightView } from "@gooddata/sdk-ui-ext";
export function EmbeddedVisualization() {
return (
<div style={{ height: 400, width: "100%" }}>
<InsightView
insight="<visualization_identifier>"
showTitle={true}
/>
</div>
);
}
[React SDK; InsightView]
Example with Custom Configuration You can also pass additional chart configuration (such as colors or legend settings) via the config prop:
import React from "react";
import "@gooddata/sdk-ui-ext/styles/css/main.css";
import { InsightView } from "@gooddata/sdk-ui-ext";
export function ConfiguredVisualization() {
return (
<div style={{ height: 400, width: 600 }}>
<InsightView
insight="<visualization_identifier>"
config={{
colors: ["rgb(195, 49, 73)", "rgb(168, 194, 86)"],
legend: {
enabled: true,
position: "bottom"
}
}}
/>
</div>
);
}
[InsightView; Embed a Visualizations Created in Analytical Designer]
Alternative: Referencing via URI If you prefer referencing the visualization by its URI instead of its identifier, use the uriRef helper from `@gooddata/sdk-model`:
import React from "react";
import "@gooddata/sdk-ui-ext/styles/css/main.css";
import { InsightView } from "@gooddata/sdk-ui-ext";
import { uriRef } from "@gooddata/sdk-model";
export function UriVisualization() {
return (
<div style={{ height: 400, width: 600 }}>
<InsightView
insight={uriRef("<visualization-uri>")}
/>
</div>
);
}
[InsightView]
Requirements β’ Make sure your app wraps the component with BackendProvider and WorkspaceProvider (or passes backend and workspace directly to InsightView) so it knows which workspace and backend to query [Slack forum user question].
β’ Always specify a container height (or wrap it in an element with a defined height), as InsightView adjusts its size to fit its parent container [InsightView]. π 0 button π 0 button βΉοΈ Tip: Mention @kapa.ai in the thread for follow-ups.
π Our Support team monitors all messages and will jump in if needed.